The present invention relates generally to computer systems and, more particularly, to the automatic adjustment of parameters to values that result in optimal system performance even as the workload on the system continues to change.
Administrators of modern computing systems generally have various parameters available that can be adjusted or configured to values that result in improved performance of the system. Size of swap space, memory dedicated to buffer-cache, maximum number of processes permitted, and maximum application data size are examples of such parameters that could be so adjusted.
With limited success, various techniques have been used to make these parameter adjustments. One common solution to this problem is for the administrator or operator to learn the details of the inner workings or operation of each application, and then speculate as to the optimal configuration of the computer system. This approach has several disadvantages: (1) it is extremely time consuming, especially since it must be repeated as each new application or workload is brought into the system, (2) there is frequently insufficient data available from the vendor of the applications to do this with any precision, (3) it is an error prone process as there are often unforseen dependencies that make such speculation highly inaccurate, and (4) optimal system parameter values can be dependent upon application usage characteristics, which can vary from time to time.
Another solution to this problem is to build a separate mechanism for each system parameter that influences system performance and that can be adjusted. Each such mechanism would have the capability of measuring system metrics and evaluating whether or not a change in the parameter controlled by that mechanism is called for. For example, such a mechanism could control a system""s virtual memory and could detect when the system either has or is in danger of running out of virtual memory. The mechanism could then recommend that the system be reconfigured to increase virtual memory. One problem with this approach is that a separate mechanism must be created for each system parameter that it is desirable to control.
Thus, there is a need for a method by which a computer system can be more effectively and efficiently improved. In particular, there is a need for a method to automatically and continually adjust system parameters to obtain improved system performance, even as the workload on the system changes.
The present patent document relates to a novel method for improving computer system performance by the adjustment of computer system parameters. This method can make appropriate adjustments even as the workload on the system changes. The method takes advantage of historical data regarding computer system performance and values of computer system parameters. Methods of selecting a new parameter value based upon this data are described including, but not limited to least squares line and curve fitting.
The methods describe comprise (1) selecting a computer system parameter for analysis and potential adjustment, (2) measuring the current value of computer system performance, (3) identifying the current value of a selected computer system parameter, (4) retrieving paired stored values of measured computer system performance and associated selected computer system parameter, (5) performing a trend analysis is performed on the paired values of computer system performance and selected computer system parameter, (6) storing the current paired current values of the measured computer system performance and the selected computer system parameter, (7) deciding whether or not to change the selected computer system parameter, and (8) if the decision is to change the value of the selected computer system parameter, making that change. This process can be repeated for other computer system parameters. In representative embodiments, tables for maintaining and displaying computer system parameter values and measured computer system performance are described.
While embodiments disclosed in the present patent document refer to automatic adjustment of computer system parameters, it should be recognized that such adjustments could be made by other means, as for example manually.
Representative embodiments as described in the present patent document are advantageous in that they take very little time or effort on the part of the system operator to arrive at an optimal or near optimal system configuration. Additionally, as the usage characteristics and load on the system change, this method finds and recommends improvements to the system, without requiring the operator to continuously monitor and redo previous adjustments that were performed by hand. Another benefit is that this mechanism can be used on a subset of the parameters available on a system. Thus, the operator may choose to use this method to look for improvements in obscure or less understood parameters, and make the macroscopic adjustments himself.
In addition, this method can be used xe2x80x9cofflinexe2x80x9d. This method can be employed on a development or benchmark instance of the application, instead of on the production version. Improved settings could be found with very consumption of operator time, and without risking adverse affects on a production system. The ideal settings obtained using the development system could then be adapted to the production system.
Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.